package com.accounting.juanjuan.controller;

import com.accounting.juanjuan.entity.ErrorData;
import com.accounting.juanjuan.exception.AppException;
import com.accounting.juanjuan.exception.BizException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * 抛异常返回信息
 *
 * @Author xxj
 */
@RestControllerAdvice
public class GlobalControllerAdvice {
    /**
     * 处理业务异常
     */
    @ExceptionHandler(BizException.class)
    public ErrorData handleBizException(BizException e) {
        ErrorData errorData = new ErrorData();
        errorData.setCode("500");
        errorData.setMessage(e.getMessage());
        return errorData;
    }

    /**
     * 处理系统级异常，这里只是在信息后面加一个特殊信息
     */
    @ExceptionHandler(AppException.class)
    public ErrorData handleAppException(BizException e) {
        ErrorData errorData = new ErrorData();
        errorData.setCode("500");
        errorData.setMessage(e.getMessage() + "--【【【如不理解，请及时联系我！】】】");
        return errorData;
    }

    /**
     * 处理其他异常，这里只是在信息后面加一个特殊信息
     */
    @ExceptionHandler(Exception.class)
    public ErrorData handleException(Exception e) {
        ErrorData errorData = new ErrorData();
        errorData.setCode("500");
        errorData.setMessage(e.getMessage() + "--【【【其他异常，请截图联系我！】】】");
        return errorData;
    }
}
